Spreadsheets are a common tool for experts in a variety of fields to model scenarios in order to better understand them and optimize them based on performance indicators. Spreadsheet programs such as MICROSOFT EXCEL have thus become essential tools for some of these experts, who have developed complex models over time with these programs. Such models may include proprietary formulae and data developed by the experts.
The creators of spreadsheet models may use them in a workplace or in a consulting practice, and for a variety of reasons others may need access to these files. Sharing spreadsheet models, however, may provide access to sensitive data and/or formulae contained in the spreadsheets, without any practical way to control or limit access to those files once they are copied.
In other scenarios, spreadsheet creators might want to share their spreadsheets with clients, but such spreadsheets may be too complex for the client to use, or may require specific programs or applications not available to the client. In such situations, experts may simply solicit the data from their clients and manually copy that data into their spreadsheet in order to run a model. This, however, may involve processing many batches of input data, which can be time-consuming and tedious.
One solution to the problem of protecting proprietary portions of spreadsheets is to hide them and secure access to them with a password. This functionality is built-in to the MICROSOFT EXCEL® program, for example. Sheets, data sets, and macros processing in the background can be protected this way. Such password mechanisms, however, generally do not provide strong protection and are easily hacked. This mechanism also does not allow experts to control which clients are allowed access to their services, as those files are still easily copied.
Another existing solution is to compile an expert's workbook into an executable file to hide sensitive processes, such as by using the XCell COMPILER™ program, available from DoneEX™. Although this removes visibility to the formulae used in a spreadsheet, the spreadsheet's functions remain available to anyone who obtains a copy of the file, especially if the file's code is decompiled or otherwise reverse engineered. In addition, converting a spreadsheet into a compiled executable file may result in a loss of functionality in the spreadsheet and/or introduce errors.
Another approach which has been used is to convert a spreadsheet into a web page with corresponding input/output reporting mechanisms and have sensitive calculations run on a backend web server, such as by using an application such as the SPREADSHEETCONVERTER™ program (available from Framtidsforum I&M AB, Sweden). A problem with this however is that the application must convert each function provided by the original spreadsheet application into a JavaScript or backend equivalent function, making it difficult to cover the conversion of all possible functions in a program like MICROSOFT EXCEL®. This approach is thus limited to functionalities that can be provided by JavaScript code, or requires custom programming of backend web server code. In addition, the JavaScript or other client-side code may itself be visible by simply viewing the web page source code, which may reveal sensitive information. In addition, this approach also requires the web application to be hosted on a server, which involves hosting costs, expertise, maintenance, and other burdens.